#ifndef MOUSSAVI_TRANSFER_PROTOCOL_H
#define MOUSSAVI_TRANSFER_PROTOCOL_H

#define COMMAND_PROMPT		"MOUSSAVI >> "
#define MAX_MSG_SIZE    	50

typedef struct
{
    char *cmd;
    void (*func)(U8 argc, char **argv);
	char *usage;
} cmd_t;


void rx();
void cmd_parse(char *cmd);

void tm_cmd_echo_off		(U8 argc, char **argv);
void tm_cmd_echo_on			(U8 argc, char **argv);
void tm_cmd_stop_all		(U8 argc, char **argv);
void tm_cmd_start_all		(U8 argc, char **argv);
void tm_cmd_idn				(U8 argc, char **argv);
void tm_cmd_repa			(U8 argc, char **argv);
void tm_cmd_read			(U8 argc, char **argv);
void tm_cmd_write			(U8 argc, char **argv);
void tm_cmd_write_block		(U8 argc, char **argv);
void tm_cmd_cs_low			(U8 argc, char **argv);
void tm_cmd_cs_high			(U8 argc, char **argv);
void tm_cmd_spi_transfer	(U8 argc, char **argv);
void tm_cmd_unprotect_flash	(U8 argc, char **argv);
void tm_cmd_protect_flash	(U8 argc, char **argv);
void tm_cmd_erase_flash		(U8 argc, char **argv);
void tm_cmd_flash_status	(U8 argc, char **argv);
void tm_cmd_dir				(U8 argc, char **argv);
void tm_cmd_get_fs			(U8 argc, char **argv);
void tm_cmd_test_led		(U8 argc, char **argv);
void tm_cmd_test_memory		(U8 argc, char **argv);
void tm_cmd_help			(U8 argc, char **argv);
void tm_cmd_software_reset	(U8 argc, char **argv);




#endif // MOUSSAVI_TRANSFER_PROTOCOL_H
